package com.chenfan.mcn.enums;

import com.chenfan.common.extension.dict.DictTranslator;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Objects;

/**
 * 打款状态枚举
 * @author wulg
 * @date 2023/4/25
 */
@AllArgsConstructor
@Getter
public enum PaidStatusEnum implements DictTranslator<Integer, String> {

    /**
     * 待打款
     */
    UN_PAYBACK(0, "待打款"),
    /**
     * 部分打款
     */
    PART_PAYBACK(1, "部分打款"),
    /**
     * 已打款
     */
    ALL_PAYBACK(2, "已打款");

    private int code;

    private String name;

    /**
     * 根据code获取 枚举
     * @param code
     * @return
     */
    public static PaidStatusEnum toEnum(Integer code) {
        if(Objects.isNull(code)) {
            return null;
        }
        PaidStatusEnum statusEnum = null;
        for (PaidStatusEnum item : PaidStatusEnum.values()) {
            if (item.getCode() == code.intValue()) {
                statusEnum = item;
                break;
            }
        }
        return statusEnum;
    }

    /**
     * 获取状态名称
     * @param code
     * @return
     */
    public static String getStatusName(Integer code) {
        PaidStatusEnum statusEnum = PaidStatusEnum.toEnum(code);
        return statusEnum != null ? statusEnum.name : null;
    }

    @Override
    public String translate(Integer code) {
        return Objects.nonNull(code) ? getStatusName(code.intValue()) : null;
    }
}
